High end storage controllers manage Input/Output (I/O) requests from networked hosts to one or more storage units, such as storage libraries. Storage controllers include one or more host bus adapters or interfaces to communicate with one or more hosts and adapters or interfaces to communicate with storage servers to which the storage units are attached. Information technology systems, including storage systems, may need protection from site disasters or outages, where outages may be planned or unplanned. Furthermore, information technology systems may require features for data migration, data backup, or data duplication. Implementations for disaster or outage recovery, data migration, data backup, and data duplication may include mirroring or copying of data in storage systems. Such mirroring or copying of data may involve interactions among hosts, storage systems and connecting networking components of the information technology system.
In a Peer-to-Peer (“PtP”) storage environment, two virtual storage servers, are each attached to a number (such as four or eight) virtual storage controllers. A host device is attached to each controller and each server is attached to a storage library. A library may include numerous storage drives, shelves for numerous data cartridges, and one or more accessor to transport requested cartridges between the shelves and the storage drives. The entire system appears to the host device as a single automated storage library. The present invention will be described herein in conjunction with data stored on magnetic tape media. Thus, “virtual storage controllers” and “virtual storage servers” may also be referred to herein as “virtual tape controllers” (“VTCs”) and “virtual tape servers” (“VTSs”), respectively. However, the invention is not limited to use in a tape environment but may be implemented in other environments as well, such as magnetic disk storage and optical storage.
FIG. 1 is a block diagram of a typical data storage system 100 in which the present invention may be implemented. Each of several (typically four or eight) virtual tape controllers 110A, 110B, 110C and 110D, such as IBM® Model AXØ Virtual Tape Controllers, is attached to two virtual tape servers 120A and 120B, such as IBM 3494 Model Bxx Virtual Tape Servers. The first VTS 120A is attached to a first tape library 130A and the second VTS 120B is attached to a second tape library 130B. The libraries 130A and 130B may be IBM Model 3494 tape libraries. Each VTC 110A-D is also attached to a host device 140, such as an IBM System/390®.
The described configuration permits Peer-to-Peer copy operations. In the conventional method illustrated in FIG. 2, a volume of customer data 150 is transferred from the host 140 to one of the VTCs 110A (step 1) as part of a write request. The volume 150 is transferred to one of the VTSs 120A for ultimate storage on tape media in the associated library 130A (step 3). Additionally, the VTC 110A which received the host write request also issues a request to the second VTS 120B (step 4) to copy the volume 150 to media in the second library 130B (step 5). When operating in an immediate mode, the first VTC 110A waits until it is notified that the volume 150 has been copied to the second library 130B (step 6) before providing confirmation to the host 140 that the write request has been completed (step 7). In the deferred mode, the first VTC 110A may notify the host 140 that the write request has been completed before being notified that the volume 150 has been copied to the second library 130B. After the host 140 receives the ‘complete’ message from the VTC 110A, it is free to perform other operations, including further I/O operations.
In the illustrated conventional method, the host device 140 typically selects a VTC to handle a write operation substantially independently of the current workloads of the VTCs 110A-D. Because an AXØ VTC may only perform three simultaneous replication operations, it may have a substantial backlog in its work queue, such as 16 or 32 replications. Consequently, it may take a substantial amount of time before it is able to notify the host 140 that the operation is complete, thereby preventing the host 140 from performing other operations for the same period of time. Moreover, if another VTC has fewer jobs in its queue, it maybe idle while the first is working through its queue.
A similar issue arises if a particular VTC-VTS communications link is over-utilized with other host I/O operations. Such other operations may cause the copy requests in a queue to be delayed.
Consequently, a need exists for a more efficient method for distributing copy requests.